The functions of a computer system are achieved by a processor executing instructions. Both the instructions and the data used in the execution of the instructions are stored in memory on the computer system. Accordingly, in order to execute the instructions, the processor must first obtain the instructions and the data from memory. In a typical computer system, memory is divided into various components. For example, the memory components may include a cache, main memory, and secondary storage. Generally, the cache stores less data and is faster than the other memory components.
Some computer systems use caches which are indexed by the physical address of the piece of memory to be stored in the cache. Because caches are typically smaller than physical memory, a given cache location may store data from one of several different addresses in physical memory. As such, all addresses of physical memory from which data may be stored in a given cache location may be referred to as having the same “cache color.”